/* 
服务器端渲染所用身份验证模式

cookie 自动发送，域名独立，过期时限，4kb限制，
客户端第一次请求服务端时，服务端通过响应头给客户端一个cookie，保存于浏览器，然后客户端每一次请求都会在请求头里，将其发送给
服务器，进行身份验证

cookie因为存放在客户端，不具有安全性

因为cookie默认不支持跨域访问，当设计跨域请求，需要额外配置才能实现session认证。
*/
const express = require('express');
const app = express();
const bodyParse = require('body-parser')
const session = require('express-session');
//配置session中间件
app.use(session({
  secret: 'ming',
  resave: false,
  saveUninitialized: true
}))
app.use(bodyParse.urlencoded({ extended: false }));
//给session传值
app.post('/api/login', (req, res) => {
  console.log(req.body);
  if (req.body.username != 'admin' || req.body.password != '0000') {
    return res.send('密码错误')
  }
  req.session.userInfo = req.body;
  req.session.islogin = true;
  console.log(req.session);
  res.send('验证通过，登录成功')
})
// 获取session值
app.get('/api/user', (req, res) => {
  console.log(req.session.islogin);
  if (req.session.islogin) {
    return res.send({
      stauts: 0,
      message: 'success'
    })
  } else {
    return res.send({
      stauts: 1,
      message: 'fail'
    })
  }
})
// 清空session
app.get('/api/logout', (req, res) => {
  req.session.destroy();
  res.send({
    stauts: 0,
    message: '退出登录'
  })
  console.log(req.session);
})
app.listen('8081', () => {
  console.log('Serve is Running');
})